export {};

// 泛型函数的定义
function echo<Type>(value: Type): Type {
  return value;
}

// <>中的是类型变量, 大写字母开头的合法变量名
function echo2<T>(value: T): T {
  return value;
}

// 箭头函数
const echo3 = <Type>(value: Type): Type => {
  return value;
};

// 泛型函数的调用

let result1 = echo<number>(10);
// echo<number>('10') // 错误演示

echo3<string>('abc');
// echo3<string>(123) // 错误演示

// 泛型函数的简化调用（TS类型推论机制）
let result2 = echo(10);
let result3 = echo('10');
